package com.itheima.lambda.practice01;

public class FlyableDemo {
    /*
         定义一个接口(Flyable)，里面定义一个抽象方法：void fly(String s);
         定义一个测试类(FlyableDemo)，在测试类中提供两个方法
         一个方法是：useFlyable(Flyable f)
         一个方法是主方法，在主方法中调用useFlyable方法
     */
    public static void main(String[] args) {
        useFlyable(new Flyable() {
            @Override
            public void fly(String s) {
                System.out.println("飞机自驾游"+s);
            }
        });
        useFlyable((String s)->{
            System.out.println("飞机自驾游"+s);
        });
        /*
        省略
            参数类型可以省略。但是有多个参数的情况下，不能只省略一个
            如果参数有且仅有一个，那么小括号可以省略
            如果代码块的语句只有一条，可以省略大括号和分号，和return关键字
         */
        useFlyable( s->
            System.out.println("飞机自驾游"+s)
        );
    }
    public static void useFlyable(Flyable f){
        f.fly("天气晴朗");
    }
}
interface Flyable{
    void fly(String s);
}
